For the transmission of data from a transmitter to a receiver, it is customary to describe both the transmitter and the receiver as a hierarchy of protocol layers. For example, a hierarchy of layers may comprise, in addition to optional further layers, a physical layer, a link layer, a transport layer and an application layer. Each layer performs specific services in the transmission procedure for the next higher layer while the processing within and below said layer is hidden for higher layers. In this way, design and description of the transmitting entities and protocols can be simplified.
In most cases, the data for transmission is divided into a plurality of data packets, which are passed through the hierarchy of protocol layers. During this processing, check sums for error detection or packet headers may be added to the packets or removed from them in the layers. Data packets can also be segmented, padded, interleaved or concatenated according to the requirements of the particular layers. The corresponding data packets generally have different names, such as protocol data unit (PDU), service data unit (SDU), packet, frame, cell, segment etc., depending on the specific protocol or technology involved. In the present specification, the term data packet generically relates to any of such data packets, a PDU denotes a data packet of the protocol layer under consideration while an SDU denotes a data packet passed to the next higher layer in the protocol stack.
During transmission, errors may occur in the transmitted data, e.g., a data packet may be totally lost or bit errors can occur within a data packet or data stream. Especially for transmission protocols on links with a high probability of data errors, like wireless links, methods are applied in the state of the art to detect and correct such errors. In forward error correction (FEC), redundant data is transmitted which allows the correction of erroneous data by the receiver.
In ARQ (Automatic Repeat Request) protocols, erroneous data, i.e. data comprising transmission errors or lost data, is detected by the receiver and retransmitted according to a corresponding request sent by the receiver to the transmitter. Original packets and retransmissions can be identical but they can also differ, e.g. the original data and the retransmission may be coded differently or they may supplement each other like in retransmission schemes with incremental redundancy. It is also possible, that a retransmission is detected as erroneous due to loss or bit errors and selected for a further retransmission. To allow an identification of erroneous data, the data is generally transmitted in data packets comprising sequence numbers and/or check sums. With increasing probability of transmission errors, the error handling of the protocol determines the transmission efficiency to a significant extent.
As an example, the RLC (Radio Link Control) link layer according to 3GPP specifications allows a high transmission efficiency by operating radio bearers in acknowledged mode ensuring data reliability with an ARQ protocol. This is especially suitable for applications, which do not require strict delay bounds for the data and can tolerate additional delays introduced by the retransmissions. A highly efficient transmission configuration in this case allows a certain number of transmission errors, which avoids overprotection of the information by much FEC or excessive transmission power.
In data communications, applications and protocols are getting increasingly important which are able to cope with a certain amount of errors, e.g. by performing error correction, error detection, by applying error concealment techniques or any combination of such methods. Error tolerant applications are for example customary for video, audio or speech transmission. However, present transport protocols in the Internet, like TCP (Transport Control Protocol) or UDP (User Datagram Protocol) are not adapted to error-tolerant applications. TCP is suited especially for applications, which require error free transmission without strict delay-bounds. UDP can discard erroneous data packets but does not guarantee reliable data transmission and is used for example for streaming applications with delay requirements. For the transmission of data to error-tolerant applications within the Internet, the UDP Lite protocol has been proposed as a further Internet Standard. The UDP Lite protocol does not automatically discard data packets, in which transmission errors are detected but can forward them to the application, which can in turn apply an error correction or concealment on the application layer. However, no automatic repeat request protocol exists, which is suited for error tolerant applications. Therefore, the transmission efficiency remains limited and the advantages of error-tolerant applications and protocols can at most partly be exploited.